package com.awaken.content.service;

// 导入订单DTO类
import com.awaken.content.models.dto.OrderDTO;
// 导入订单请求类
import com.awaken.content.models.request.OrderRequest;
// 导入列表类
import java.util.List;

/**
 * 订单服务接口 - 定义订单相关的业务操作
 * 这个接口定义了所有与订单相关的业务方法
 * 具体的实现逻辑在OrderServiceImpl类中
 */
public interface OrderService {
    
    /**
     * 创建订单
     * @param request 订单创建请求，包含用户ID、商品ID、购买数量
     * @return 创建成功的订单信息，失败返回null
     */
    OrderDTO createOrder(OrderRequest request);
    
    /**
     * 根据ID获取订单信息
     * @param id 订单ID
     * @return 订单信息，如果订单不存在返回null
     */
    OrderDTO getOrderById(Long id);
    
    /**
     * 根据用户ID获取订单列表
     * @param userId 用户ID
     * @return 该用户的所有订单
     */
    List<OrderDTO> getOrdersByUserId(Long userId);
    
    /**
     * 更新订单状态
     * @param orderId 订单ID
     * @param status 新的订单状态：1=待付款，2=已付款待发货，3=已发货待收货，4=已完成，5=已取消
     * @return 更新成功返回true，失败返回false
     */
    boolean updateOrderStatus(Long orderId, Integer status);
    
    /**
     * 获取所有订单列表
     * @return 所有订单的列表
     */
    List<OrderDTO> getAllOrders();
} 